#include <iegenlib/iegenlib.h>

using iegenlib::SymbolTable;
using iegenlib::Set;
using iegenlib::Relation;
using iegenlib::ExpVec;

int main(int ac, char **av)
{
  set<string> varTuple;
  varTuple.insert("var1");
  varTuple.insert("var2");
  varTuple.insert("var3");
  set<string> symbolics;
  symbolics.insert("sym1");
  symbolics.insert("sym2");
  symbolics.insert("sym3");
  symbolics.insert("sym4");
  symbolics.insert("sym5");
  symbolics.insert("sym6");
  set<string> exists;
  exists.insert("exist1");
  exists.insert("exist2");
  exists.insert("exist3");
  list<pair<string, int> > conVal;
  SymbolTable st(&varTuple, &symbolics, &exists, 1);

 
  st.lookup("func1",list<ExpVec>());
  SymbolTable scp(st);

  SymbolTable spc2 = scp;

  Set PS1("{[x,y,z]:z>x+y and x<0}");
  Set PS2(PS1);

  Set PS3("{[x,x,x]:x1+3=x}");
  Set PS4 = PS3;

  Relation PR1("{[x,y,z]->[a,b,c]:a<y+4}");
  Relation PR2(PR1);

  Relation PR3("{[x,x,x]->[a,b,c]: a-b+c>=0 && a>=10}");
  Relation PR4 = PR3;
}
